From: Roger Pau Monné Date: Fri, 5 Mar 2021 14:30:23 +0000 (+0100) Subject: x86/efi: enable MS ABI attribute on clang X-Git-Tag: archive/raspbian/4.14.2+25-gb6a8c4f72d-2+rpi1^2~47^2~63 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success/%22http:/www.example.com/cgi/success?a=commitdiff_plain;h=c354bd746877591ad16ed80077ee367c9c98fa48;p=xen.git x86/efi: enable MS ABI attribute on clang Or else the EFI service calls will use the wrong calling convention. The __ms_abi__ attribute is available on all supported versions of clang. Add a specific Clang check because the GCC version reported by Clang is below the required 4.4 to use the __ms_abi__ attribute. Signed-off-by: Roger Pau Monné Acked-by: Andrew Cooper Reviewed-by: Ian Jackson master commit: 92f5ffa58d188c9f9a9f1bcdccb6d6348d9df612 master date: 2021-02-04 14:02:32 +0100 --- diff --git a/xen/include/asm-x86/x86_64/efibind.h b/xen/include/asm-x86/x86_64/efibind.h index b013db175d..ddcfae07ec 100644 --- a/xen/include/asm-x86/x86_64/efibind.h +++ b/xen/include/asm-x86/x86_64/efibind.h @@ -172,7 +172,7 @@ typedef uint64_t UINTN; #ifndef EFIAPI // Forces EFI calling conventions reguardless of compiler options #ifdef _MSC_EXTENSIONS #define EFIAPI __cdecl // Force C calling convention for Microsoft C compiler - #elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) + #elif __clang__ || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) #define EFIAPI __attribute__((__ms_abi__)) // Force Microsoft ABI #else #define EFIAPI // Substitute expresion to force C calling convention